/**
 * 
 */
package br.gov.sjc.socialalimenta;

import br.org.sjc.validacao.Sair;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

/**
 * @author rodrigo.ramos
 * Esta tela faz a pesquisa das familias
 */

public class progressoActivity extends Sair {
	private ProgressDialog dialog;
	static final int DATE_DIALOG_ID = 0;

	//Declara base de dados
	public static SQLiteDatabase BancoDados = null;
	public static String nomeBanco = "SocialAlimenta";
	public void openDB(){
		try{
			//File dbFile = new File(Environment.getExternalStorageDirectory(), nomeBanco);
			//BancoDados = SQLiteDatabase.openOrCreateDatabase(dbFile,null);
			BancoDados = openOrCreateDatabase(nomeBanco,MODE_WORLD_READABLE,null);
			Log.v("progressoActivity", "BancoDados.openOrCreateDatabase();");
		}catch (Exception E){
			Log.e("progressoActivity", "Erro em BancoDados.close();"+E.getMessage());
		} 
	}
	public void closeDB(){
		BancoDados.close();
		Log.v("progressoActivity", "BancoDados.close();");
	}

	//Pega o numero do Sias em uso atual
	NumeroSias ns = new NumeroSias();
	int NumSias ;

	int EtapaNum = ns.getNumeroDaEtapa();
	//int NumResp = ns.getTecnicoResponsavel();
	//ns.setNumeroDaEtapa(EtapaNum+1);

	//Declara TextBox
	EditText tbNSias, tbNomeTec;
	Button btnNSiasPesquisa, btnVoltar;

	//Declara Cursor
	Cursor Verifica;
	protected String data;


	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.progresso);
		registerBaseActivityReceiver();
		openDB();
		//Declara os editText
		btnNSiasPesquisa = (Button) findViewById(R.progresso.btnNSiasPesquisa);
		btnVoltar = (Button) findViewById(R.progresso.btnVoltar);
		
		tbNSias = (EditText) findViewById(R.progresso.tbNSias);

		/** Acao do botao Pesquisa */
		btnNSiasPesquisa.setOnClickListener(new View.OnClickListener() {
			public void onClick(View arg0) {
				validaRegistro();
			}
		});//fim acao do botao Pesquisa
		
		/** Acao do botao Voltar */
		btnVoltar.setOnClickListener(new View.OnClickListener() {
			public void onClick(View arg0) {
				ittVoltar();
			}
		});//fim acao do botao Voltar
	}//fim do oncreate

	public void ittIr(){
		/** InitComponents */
		Intent ittPIr = new Intent(getApplicationContext(), EnderecoActivity.class);
		closeDB();
		startActivity(ittPIr);
	}
	
	public void ittVoltar(){
		/** InitComponents */
		Intent ittVoltar = new Intent(getApplicationContext(), SocialAlimenta2Activity.class);
		closeDB();
		startActivity(ittVoltar);
	}

	public void insereNumeroSias(int numSias2) {
		ns.setNumeroDaFamilia(numSias2);
	}

	protected void validaRegistro() {
		// valida registros antes de serem persistidos na tabela
		//tbNomeMae, tbNomePai,tbNaturalidade ;

		if(tbNSias.getText().toString().equals("")){
			//Toast.makeText(this, "Campo Número Sias está Vazio", Toast.LENGTH_LONG).show();
			Toast toast= Toast.makeText(getApplicationContext(), "Campo Número Sias está Vazio!", Toast.LENGTH_SHORT);         
		    toast.setGravity(Gravity.TOP, 0, 70);
		    toast.show();
		}else {
			try{
				Log.v("progressoActivity", "ValidaRegistro Iniciado "); 
				//abre o loading
				dialog = ProgressDialog.show(this, "Social Alimenta",
						"Por favor aguarde...", false, true);

				//insere o numero sias no objeto Global
				String numerodosias = tbNSias.getText().toString();
				Log.v("progressoActivity", "validaRegistro numerodosias= "+numerodosias); 

				NumSias = Integer.parseInt(numerodosias);
				Log.v("progressoActivity", " validaRegistro NumSias= "+NumSias); 

				insereNumeroSias(NumSias);
				Log.v("progressoActivity", "validaRegistro NumSias= "+NumSias); 

				//Escreve o log de informa��o
				Log.i("progressoActivity", "Valida registro passou");

				if (verificaRegistro()){
					if (NumSias != 0){
						Toast.makeText(this, "Familia:"+NumSias, Toast.LENGTH_LONG).show();
						//vai para a pr�xima tela
						ittIr();
					}else{
						//Toast.makeText(this, "Número Sias Não Encontrado", Toast.LENGTH_LONG).show();
						Toast toast= Toast.makeText(getApplicationContext(), "Número Sias Não Encontrado!", Toast.LENGTH_SHORT);         
					    toast.setGravity(Gravity.TOP, 0, 70);
					    toast.show();
						Log.e("progressoActivity", "verificaRegistro() = False");
					}
				}else{
					Toast toast= Toast.makeText(getApplicationContext(), "Número Sias Não Encontrado!", Toast.LENGTH_SHORT);         
				    toast.setGravity(Gravity.TOP, 0, 70);
				    toast.show();
					//Toast.makeText(this, "Número Sias Não Encontrado!", Toast.LENGTH_LONG).show();
				}
			}catch(Exception e){
				//Toast.makeText(this, "Erro na pesquisa", Toast.LENGTH_LONG).show();
				Toast toast= Toast.makeText(getApplicationContext(), "Erro na pesquisa!", Toast.LENGTH_SHORT);         
			    toast.setGravity(Gravity.TOP, 0, 70);
			    toast.show();
				Log.e("progressoActivity", "Erro: "+e.getMessage());

			}finally{
				dialog.dismiss();
				Log.v("progressoActivity", "validaRegistro finally Executado "); 
			}
		}
	}
	public boolean verificaRegistro(){
		boolean Retorno = false;
		try{
			Log.v("progressoActivity", "verificaRegistro() Início SiasN= "+NumSias);
			String SQLQuery = "Select * from tab_SocialA_Nome WHERE SiasN="+NumSias+" Order By idMembro ASC";
			Verifica = BancoDados.rawQuery(SQLQuery, null);
			int counter = Verifica.getCount();
			Verifica.moveToFirst();

			if ( counter !=0 ){
				Retorno = true;
				Log.i("progressoActivity", "verificaRegistro() -  counter="+counter);
			}else{
				Log.e("progressoActivity", "Erro: Verifica.getCount() ="+counter);
			}

		}catch (Exception Err){
			mensagemAlerta("Erro","Erro Encontrado");
			Log.e("progressoActivity", "Erro: "+Err.getMessage());
		}
		return Retorno;
	}

	public void mensagemAlerta(String AlertTitle, String MSGAlert){
		AlertDialog.Builder Mensagem = new AlertDialog.Builder(progressoActivity.this);
		Mensagem.setTitle(AlertTitle);
		Mensagem.setMessage(MSGAlert);
		Mensagem.setNeutralButton("Ok", null);
		Mensagem.show();
	}

	@Override
	protected void onResume() {
		//quando a Activity main receber o foco novamente abre-se novamente a conexão
		openDB();
		//método responsável pela atualiza da lista de dados na tela
		//adapter.notifyDataSetChanged();
		super.onResume();
	}
	
	@Override
	protected void onPause() {

		//toda vez que o programa peder o foco fecha-se a conexão com o BD
		closeDB();
		super.onPause();
	}
	
	@Override
	protected void onDestroy() {
		super.onDestroy();
		unRegisterBaseActivityReceiver();
		finish();
	}
}//fim da classe
